Almost all contemporary computer systems are configured to use USB (Universal Serial Bus), an external peripheral interface standard for serial communication between computer systems and external peripheral devices such as a mouse, a printer, a digital camera, and so forth. With USB, each peripheral device connects via a cable that plugs into a standardized USB port on the computer system.
In an effort to eliminate the need for USB cables to connect computers systems and the external peripherals, wireless USB (or WUSB) based on ultrawideband (UWB) technology is becoming standardized. Wireless USB is directed towards having communication speeds comparable to the USB 2.0 standard, e.g., 480 Mbps, over distances up to ten meters.
However, unlike wired USB where transmission errors are extremely rare, there is a significant packet error rate in UWB transmissions (e.g., on the order of ten percent) that must be compensated for in some way, otherwise a user's wireless USB experience will be noticeably inferior to that of wired USB. Attempts to resolve the problems caused by the high packet error rate, generally based on retrying failed packets, are complicated by the fact that there are different types of USB communications, including asynchronous (control and bulk data) communications, and periodic (interrupt and isochronous) communications, each with different transmission-related requirements. In wireless USB, devices communicate over UWB, whereby at any given time, the connection to one device may be experiencing very few packet errors, while the connection to another device may be experiencing many packet errors.
What is needed is a mechanism that compensates for the relatively significant error rate in wireless USB, in view of the many differences between wired USB and wireless USB. Such a mechanism should be sufficiently flexible such that software can control the mechanism as needed in a given environment.